# 使用具体版本号而不是 alpine
FROM node:18.19.0-alpine3.18

# 安装必要的系统包
RUN apk add --no-cache python3 make g++ sqlite

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制所有源代码
COPY . .

# 构建前端应用
RUN npm run build

# 创建必要的目录并设置权限
RUN mkdir -p /app/data /app/logs /app/database && \
    chown -R node:node /app

# 切换到非 root 用户
USER node

# 暴露端口
EXPOSE 3000 8003

# 启动命令
CMD ["sh", "-c", "npm run dev & npm run server"] 